﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Circo.Framework.BusinessLogic.Views.Filters;
using SC.eWedding.BusinessLogic.Views;
using SC.eWedding.BusinessLogic.Handlers;

public partial class Proveedor_Controles_vfProducto : System.Web.UI.UserControl
{
    #region Propiedades Privadas

    private string Denominacion
    {
        get { return txtDenominacion.Text; }
        set { txtDenominacion.Text = value; }
    }

    private int Categoria
    {
        get { return int.Parse(ddlCategoria.SelectedValue); }
        set { ddlCategoria.SelectedValue = value.ToString(); }
    }

    private int Tipo
    {
        get { return int.Parse(ddlTipo.SelectedValue); }
        set { ddlTipo.SelectedValue = value.ToString(); }
    }

    #endregion    

    #region Metodos Publicos

    public List<ViewFilter> Filtros(int id)
    {
        List<ViewFilter> filters = new List<ViewFilter>();

        if (Denominacion != "")
            filters.Add(new ViewCommonFilter("Denominacion", Denominacion));
        if (Categoria != -1)
            filters.Add(new ViewCommonFilter("Categoria", Categoria));
        if (Tipo != -1)
            filters.Add(new ViewCommonFilter("Tipo", Tipo));
        if (Tipo != -1)
            filters.Add(new ViewCommonFilter("Proveedor", id));

        return filters;
    }

    public void Limpiar()
    {
        Denominacion = "";
        Categoria = -1;
        Tipo = -1;
    }

    public void CargarCombos()
    {
        CargarCategoria();
        CargarTipoProd();
    }

    #endregion

    #region Metodos Privados

    private void CargarTipoProd()
    {
        List<TipoProdView> tipos = new List<TipoProdView>();

        TipoProdView tipoSel = new TipoProdView();
        tipoSel.Id = -1;
        tipoSel.Tipo = "<Seleccionar>";
        tipos.Add(tipoSel);

        if (Categoria != -1)
        {
            List<ViewFilter> filtros = new List<ViewFilter>();

            filtros.Add(new ViewCommonFilter("Categoria", Categoria));
            tipos.AddRange(TipoProdHandler.FindBy(filtros));
        }
        ddlTipo.DataSource = tipos;
        ddlTipo.DataBind();
    }

    private void CargarCategoria()
    {
        ddlCategoria.Items.Add(new ListItem("<Seleccionar>", "-1"));
        ddlCategoria.Items.Add(new ListItem("Producto", ((int)ProdSerView.TipoCateg.Producto).ToString()));
        ddlCategoria.Items.Add(new ListItem("Servicio", ((int)ProdSerView.TipoCateg.Servicio).ToString()));
        ddlCategoria.Items.Add(new ListItem("Regalo", ((int)ProdSerView.TipoCateg.Regalo).ToString()));

        ddlCategoria.DataBind();
    }

    #endregion

    #region Eventos

    protected void ddlCategoria_SelectedIndexChanged(object sender, EventArgs e)
    {
        CargarTipoProd();
    }

    #endregion
}
